package com.huitong.common.mybatis.encrypt.encryptor;

import com.huitong.common.mybatis.enums.EncodeType;

/**
 * 加密算法 定义了统一的加密解密方法
 *
 * @author fromdrowning
 * @date 2024/4/11 21:46
 */
public interface Encryptor {

    /**
     * 校验加密算法必要的参数配置
     */
    void verifyProperties();

    /**
     * 加密
     *
     * @param value      需要加密的敏感字段值
     * @param encodeType 加密后的编码类型
     * @return 加密后的敏感字段值
     */
    String encrypt(String value, EncodeType encodeType);

    /**
     * 解密
     *
     * @param value 需要解密的敏感字段值
     * @return 解密后的敏感字段值
     */
    String decrypt(String value);

}
